<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="/admin/index.xhtml" xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

    <ui:define name="area-util">
        <p:panel header="Cadastro de parâmetros" style="margin-bottom:10px;">
            <h:form id="top">
                <p:growl id="messages" showDetail="true" globalOnly="true"/>
            </h:form>
            <h:form id="frmcadastro">
                <h:inputHidden value="#{parametroBean.parametro.id}"/>
                <h:panelGrid columns="4" style="margin-bottom:10px" cellpadding="5">
                    <h:outputLabel value="Nome:" for="nome"/>
                    <p:inputText id="nome" value="#{parametroBean.parametro.nome}" class="nomeParametro"
                                 required="true" requiredMessage="Nome requerido!" validatorMessage="Nome inválido!">
                        <f:validateRegex pattern="([a-z]|[A-Z]|[0-9]|[ ]){2,150}"/>
                    </p:inputText>
                    <p:message for="nome"/>&nbsp;

                    <h:outputLabel value="Unidade de medida:" for="unidadeMedida"/>
                    <p:inputText id="unidadeMedida" value="#{parametroBean.parametro.unidadeMedida}"
                                 required="true" requiredMessage="Unidade de medidade requerida!" validatorMessage="Unidade de medida deve possuir no máximo 20 caracteres!" maxlength="20"/>
                    <p:message for="unidadeMedida"/>&nbsp;

                    <h:outputLabel value="Calculável:" for="calculavel"/>
                    <p:selectBooleanButton id="calculavel" value="#{parametroBean.parametro.calculavel}"
                                           onLabel="Sim" offLabel="Não"
                                           onIcon="ui-icon-check" offIcon="ui-icon-close">
                        <f:ajax render="formula"/>
                    </p:selectBooleanButton>
                    <h:outputText/>&nbsp;

                    <h:outputLabel value="Fórmula:" for="formula"/>
                    <p:inputText id="formula" value="#{parametroBean.parametro.formula}" disabled="#{parametroBean.parametro.calculavel?false:true}"
                                 required="#{parametroBean.parametro.calculavel}" requiredMessage="Fórmula requerida!" validatorMessage="Fórmula deve possuir no máximo 100 caracteres!" maxlength="100"/>
                    <p:commandButton value="Salvar" actionListener="#{parametroBean.salvar()}" update=":frmlist:listagem :frmcadastro :top:messages"/>
                    <p:message for="formula"/>
                </h:panelGrid>
            </h:form>
        </p:panel>

        <h:form id="frmlist">
            <p:dataTable id="listagem" var="parametro" value="#{parametroBean.listar}" scrollable="true" scrollHeight="240">
                <p:column headerText="Id">
                    <h:outputText value="#{parametro.id}" />
                </p:column>

                <p:column headerText="Nome">
                    <h:outputText value="#{parametro.nome}" class="nomeParametro"/>
                </p:column>

                <p:column headerText="Unidade de medida">
                    <h:outputText value="#{parametro.unidadeMedida}" />
                </p:column>

                <p:column headerText="Calculável">
                    <h:outputText value="#{parametro.calculavel?'Sim':'Não'}"/>
                </p:column>

                <p:column headerText="Fórmula">
                    <h:outputText value="#{parametro.formula}"/>
                </p:column>

                <p:column headerText="Ações">
                    <p:commandLink actionListener="#{parametroBean.excluir(parametro)}" value="Exluir" update=":frmlist:listagem :top:messages"/>&nbsp;
                    <p:commandLink actionListener="#{parametroBean.setParametro(parametro)}" value="Alterar" update=":frmcadastro"/>
                </p:column>
            </p:dataTable>                    
        </h:form>
    </ui:define>

</ui:composition>